Java进阶-toString()

关于 Object 中的 toString 方法:

SUN 在 Object 类中设计 toString方法 的目的:返回 Java 对象的字符串表示形式

1
2
3
4
5
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
// 类名@java对象 的内存地址经过哈希算法得到的int类型值再转换成十六进制
// 可以等同看作 Java 对象在堆中的内存地址
}

在现实的开发过程中,这个方法已经不够用了,不能满足自身开发需求,所以这个方法就是要被重写的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class Text01 {
public static void main(String[] args) {
Object o1 = new Object();
String oStr = o1.toString();
System.out.println(oStr); // java.lang.Object@7852e922

Person p1 = new Person("刘德华", 50);
String pStr = p1.toString();
System.out.println(pStr); // Person[name=刘德华,age=50]
}
}

class Person {
String name;
int age;

Person(String name, int age) {
this.name = name;
this.age = age;
}

// 重写 toString()
// 根据项目需求定
public String toString() {
return "Person[name=" + name + ",age=" + age + "]";
}
}